1. Field of the Invention
The present invention is generally related to identifying security exposures that may exist within the solution stack utilized in the implementation of an Internet Web site and, in particular, to identifying a contextually relevant set of security vulnerability corrections for an Internet Web site solution stack instance based on an external, or substantially site independent, analysis of site operations.
2. Description of the Related Art
In general perception, the Internet serves to smoothly interconnect the many different, seemingly discrete sites into an easily navigable network simply referred to as the World Wide Web (Web). While the underlying systems and software do share certain broad architectural features, individual Web sites, however delimited, are constructed utilizing an extremely varied set of technologies, each often with an equally diverse set of specific implementations. In general terms, the collection of technologies utilized in the functional presentation of a given Web site is referred to as the ‘solution stack’ implementing the site. The solution stack is thus the set of software subsystems, or program components, that interdependently operate to realize the function of the Web site. The underlying computer server system and associated operating system environment may be considered components of a given solution stack, depending on contextual use. Typical components of a solution stack include Web frameworks, programming languages, database management systems, and Web server applications.
Many of the technological variations in solution stack components have arisen directly in response to the rapid and diverse evolution of the features and functions offered by Web sites, compounded by the requirement to do so at scales that run from hundreds to millions of Web page views per day. Alternate and competitive component solutions have been developed for most every level in the solution stacks, no matter how differently the layers may be defined, in response to the diverse business and social requirements to seamlessly host entertainment, shopping, education, and information services, among many others.
Web sites are conventionally hosted on a server computer system that is publicly available through a network connection to the Internet and thus independently accessible by any client computer systems also connected to the Internet. The complexity of the server system can range from that of a single computer server connected directly to the Internet to an infrastructure interconnecting multiple servers that collectively provide for geographic distribution, redundancy, and load-balancing as appropriate to meet the business or otherwise public-facing functional demands of the Web site. These varied functional requirements often affect and can compound the design and operational complexity of the solution stack implementing a Web site. As a practical consequence, most any solution stack is relatively unique in the selection, versioning, and configuration of the software components utilized.
Given the necessity to ensure Web site security, both with respect to retained user information and malicious functional compromise, many Web site operators will require some form of Internet site security audit. Verifying operational security and resilience to tampering is, however, quite difficult. Conventionally, Internet site security audits are performed to identify vulnerabilities in the underlying systems and solution stacks that could be exploited for undesirable purposes. Typical exploits include direct data loss, data corruption, and functional corruption of any of the software components implementing the site. Data loss includes any misappropriation of personal, financial, product, or other business data. Data corruption may range from an actual destruction of stored data to simply a perceived loss of data integrity resulting from a security breach. Any compromise, disabling, or co-opting of the normal operation of a server system or any of the components within a hosted solution stack is a functional corruption of the Web site.
To be effective, security audits conventionally require access to the computer systems and components of the solution stacks of the Web sites being audited. Such audits are quite time consuming, costly, and, perhaps most significantly, highly intrusive in that the auditors will have to enumerate and review all of the components utilized in the logical construction of the systems and solution stacks being audited. Conventional audits performed without full access are limited to generalized evaluations and, accordingly, unable to provide any detailed recommendations for hardening the audited systems and solution stacks.
Consequently, a need exists for a more efficient and effective system and methods of conducting security audits of Internet Web sites that both identifies vulnerabilities and provides actionable directions for hardening the audited systems specific to the components of the solution stack or stacks actually in use.